package com.scs.application.modules.sys.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.entity.BaseEntity;
import com.scs.application.modules.upgrade.db.annotation.EntityClassAnnotation;
import com.scs.application.modules.upgrade.db.annotation.EntityFieldAnnotation;
import com.scs.application.modules.upgrade.db.enums.EntityFieldType;
import lombok.Data;

/**
 * <p>
 * 菜单
 * </p>
 */
@Data
@EntityClassAnnotation(remark = "菜单表")
@TableName("sys_menu")
public class Menu extends BaseEntity {

    @EntityFieldAnnotation(
            text = "",
            length = "24",
            not_null = true,
            default_value = "",
            comment = ""
    )
    private String id;

    @EntityFieldAnnotation(
            text = "名称",
            length = "50",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String name;

    @EntityFieldAnnotation(
            text = "上级菜单",
            length = "24",
            not_null = true,
            default_value = "",
            comment = ""
    )
    private String parentId;

    @EntityFieldAnnotation(
            text = "显示编号",
            length = "50",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String code;
    @EntityFieldAnnotation(
            text = "显示名称",
            length = "50",
            not_null = true,
            default_value = "",
            comment = ""
    )
    private String title;
    @EntityFieldAnnotation(
            text = "程序员名称",
            length = "30",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String programTitle;
    @EntityFieldAnnotation(
            text = "图标",
            length = "30",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String icon;
    @EntityFieldAnnotation(
            text = "前台view的路径",
            length = "50",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String url;
    @EntityFieldAnnotation(
            text = "路由名称",
            length = "50",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String route;
    @EntityFieldAnnotation(
            text = "参数",
            length = "500",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String parameter;
    @EntityFieldAnnotation(
            text = "隐藏",
            length = "",
            not_null = true,
            default_value = "0",
            comment = ""
    )
    private Boolean isHidden;

    @EntityFieldAnnotation(
            text = "管理员菜单",
            length = "",
            not_null = true,
            default_value = "0",
            comment = ""
    )
    private Boolean isAdminMenu;

    @EntityFieldAnnotation(
            text = "流程",
            type = EntityFieldType.LONG,
            length = "",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String flowId;
    @EntityFieldAnnotation(
            text = "流程Key",
            length = "30",
            not_null = false,
            default_value = "",
            comment = ""
    )
    private String flowKey;
    @EntityFieldAnnotation(
            text = "菜单类型",
            length = "20",
            not_null = false,
            default_value = "",
            comment = "PC，APP"
    )
    private String menuType;

    @EntityFieldAnnotation(
            text = "排序",
            length = "",
            default_value = "0",
            not_null = true,
            comment = "排序"
    )
    private Integer sort;


    @EntityFieldAnnotation(
            text = "视图标识",
            length = "100",
            not_null = false,
            comment = "viewKey"
    )
    private String viewKey;
}
